﻿Public Class frmAdvancedListBox

	Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load


	End Sub

	Private Sub txtFilter_TextChanged(sender As Object, e As System.EventArgs) Handles txtFilter.TextChanged
		AdvancedListBox1.FilterString = txtFilter.Text
	End Sub

	Private Function Countries() As List(Of String)
		Dim returnList As New List(Of String)

		returnList.Add("Abkhazia 阿布哈兹自治共和国")
		returnList.Add("Afghanistan 阿富汗伊斯兰共和国")
		returnList.Add("Åland Islands 奥兰群岛")
		returnList.Add("Albania 阿尔巴尼亚共和国")
		returnList.Add("Algeria 阿尔及利亚人民民主共和国")
		returnList.Add("American Samoa 美属萨摩亚")
		returnList.Add("Andorra 安道尔公国")
		returnList.Add("Angola 安哥拉共和国")
		returnList.Add("Anguilla 安圭拉")
		returnList.Add("Antigua and Barbuda 安提瓜和巴布达")
		returnList.Add("Argentina 阿根廷共和国")
		returnList.Add("Armenia 亚美尼亚共和国")
		returnList.Add("Aruba 阿鲁巴")
		returnList.Add("Australia 澳大利亚联邦")
		returnList.Add("Austria 奥地利共和国")
		returnList.Add("Azaouad 阿扎瓦德独立国")
		returnList.Add("Azerbaijan 阿塞拜疆共和国")
		returnList.Add("Bahamas, The 巴哈马国")
		returnList.Add("Bahrain 巴林王国")
		returnList.Add("Bangladesh 孟加拉人民共和国")
		returnList.Add("Barbados 巴巴多斯")
		returnList.Add("Belarus 白俄罗斯共和国")
		returnList.Add("Belgium 比利时王国")
		returnList.Add("Belize 伯利兹")
		returnList.Add("Benin 贝宁共和国")
		returnList.Add("Bermuda 百慕大")
		returnList.Add("Bhutan 不丹王国")
		returnList.Add("Bolivia 多民族玻利维亚国")
		returnList.Add("Bosnia and Herzegovina 波斯尼亚和黑塞哥维那")
		returnList.Add("Botswana 博茨瓦纳共和国")
		returnList.Add("Brazil 巴西联邦共和国")
		returnList.Add("British Indian Ocean Territory 英属印度洋领地")
		returnList.Add("Brunei 文莱达鲁萨兰国")
		returnList.Add("Bulgaria 保加利亚共和国")
		returnList.Add("Burkina Faso 布基纳法索")
		returnList.Add("Burundi 布隆迪共和国")
		returnList.Add("Cambodia 柬埔寨王国")
		returnList.Add("Cameroon 喀麦隆共和国")
		returnList.Add("Canada 加拿大")
		returnList.Add("Cape Verde 佛得角共和国")
		returnList.Add("Cayman Islands 开曼群岛")
		returnList.Add("Central African Republic 中非共和国")
		returnList.Add("Chad 乍得共和国")
		returnList.Add("Chile 智利共和国")
		returnList.Add("China 中华人民共和国")
		returnList.Add("Christmas lsland 圣诞岛")
		returnList.Add("Cocos (Keeling) Islands 科科斯（基林）群岛")
		returnList.Add("Colombia 哥伦比亚共和国")
		returnList.Add("Comoros 科摩罗联盟")
		returnList.Add("Congo (Brazzaville) 刚果共和国")
		returnList.Add("Congo (Kinshasa) 刚果民主共和国")
		returnList.Add("Cook Islands 库克群岛")
		returnList.Add("Costa Rica 哥斯达黎加共和国")
		returnList.Add("Côte d'Ivoire 科特迪瓦共和国")
		returnList.Add("Croatia 克罗地亚共和国")
		returnList.Add("Cuba 古巴共和国")
		returnList.Add("Cyprus 塞浦路斯共和国")
		returnList.Add("Czech Republic 捷克共和国")
		returnList.Add("Denmark 丹麦王国")
		returnList.Add("Djibouti 吉布提共和国")
		returnList.Add("Dominica 多米尼克国")
		returnList.Add("Dominican Republic 多米尼加共和国")
		returnList.Add("Ecuador 厄瓜多尔共和国")
		returnList.Add("Egypt 阿拉伯埃及共和国")
		returnList.Add("El Salvador 萨尔瓦多共和国")
		returnList.Add("Equatorial Guinea 赤道几内亚共和国")
		returnList.Add("Eritrea 厄立特里亚国")
		returnList.Add("Estonia 爱沙尼亚共和国")
		returnList.Add("Ethiopia 埃塞俄比亚联邦民主共和国")
		returnList.Add("Falkland Islands 福克兰群岛（马尔维纳斯群岛）")
		returnList.Add("(Islas Malvinas) ")
		returnList.Add("Faroe Islands 法罗群岛")
		returnList.Add("Fiji 斐济群岛共和国")
		returnList.Add("Finland 芬兰共和国")
		returnList.Add("France 法兰西共和国")
		returnList.Add("French Polynesia 法属波利尼西亚")
		returnList.Add("Gabon 加蓬共和国")
		returnList.Add("Gambia, The 冈比亚共和国")
		returnList.Add("Georgia 格鲁吉亚")
		returnList.Add("Germany 德意志联邦共和国")
		returnList.Add("Ghana 加纳共和国")
		returnList.Add("Gibraltar 直布罗陀")
		returnList.Add("Greece 希腊共和国")
		returnList.Add("Greenland 格陵兰")
		returnList.Add("Grenada 格林纳达")
		returnList.Add("Guam 关岛")
		returnList.Add("Guatemala 危地马拉共和国")
		returnList.Add("Guernsey 根西岛")
		returnList.Add("Guinea 几内亚共和国")
		returnList.Add("Guinea-Bissau 几内亚比绍共和国")
		returnList.Add("Guyana 圭亚那合作共和国")
		returnList.Add("Haiti 海地共和国")
		returnList.Add("Honduras 洪都拉斯共和国")
		returnList.Add("Hong Kong 中华人民共和国香港特别行政区")
		returnList.Add("Hungary 匈牙利")
		returnList.Add("Iceland 冰岛共和国")
		returnList.Add("India 印度共和国")
		returnList.Add("Indonesia 印度尼西亚共和国")
		returnList.Add("Iran 伊朗伊斯兰共和国")
		returnList.Add("Iraq 伊拉克共和国")
		returnList.Add("Ireland 爱尔兰")
		returnList.Add("Israel 以色列国")
		returnList.Add("Italy 意大利共和国")
		returnList.Add("Jamaica 牙买加")
		returnList.Add("Japan 日本国")
		returnList.Add("Jersey 泽西岛")
		returnList.Add("Jordan 约旦哈希姆王国")
		returnList.Add("Kazakhstan 哈萨克斯坦共和国")
		returnList.Add("Kenya 肯尼亚共和国")
		returnList.Add("Kiribati 基里巴斯共和国")
		returnList.Add("Korea, South 大韩民国")
		returnList.Add("Kosovo 科索沃共和国")
		returnList.Add("Kuwait 科威特国")
		returnList.Add("Kyrgyzstan 吉尔吉斯共和国")
		returnList.Add("Laos 老挝人民民主共和国")
		returnList.Add("Latvia 拉脱维亚共和国")
		returnList.Add("Lebanon 黎巴嫩共和国")
		returnList.Add("Lesotho 莱索托王国")
		returnList.Add("Liberia 利比里亚共和国")
		returnList.Add("Libya 利比亚国")
		returnList.Add("Liechtenstein 列支敦士登公国")
		returnList.Add("Lithuania 立陶宛共和国")
		returnList.Add("Luxembourg 卢森堡大公国")
		returnList.Add("Macao 中华人民共和国澳门特别行政区")
		returnList.Add("Macedonia 马其顿共和国")
		returnList.Add("Madagascar 马达加斯加共和国")
		returnList.Add("Malawi 马拉维共和国")
		returnList.Add("Malaysia 马来西亚")
		returnList.Add("Maldives 马尔代夫共和国")
		returnList.Add("Mali 马里共和国")
		returnList.Add("Malta 马耳他共和国")
		returnList.Add("Isle of Man 马恩岛")
		returnList.Add("Marshall Islands 马绍尔群岛共和国")
		returnList.Add("Mauritania 毛里塔尼亚伊斯兰共和国")
		returnList.Add("Mauritius 毛里求斯共和国")
		returnList.Add("Mayotte 马约特")
		returnList.Add("Mexico 墨西哥合众国")
		returnList.Add("Micronesia 密克罗尼西亚联邦")
		returnList.Add("Moldova 摩尔多瓦共和国")
		returnList.Add("Monaco 摩纳哥公国")
		returnList.Add("Mongolia 蒙古国")
		returnList.Add("Montenegro 黑山")
		returnList.Add("Montserrat 蒙特塞拉特")
		returnList.Add("Morocco 摩洛哥王国")
		returnList.Add("Mozambique 莫桑比克共和国")
		returnList.Add("Myanmar 缅甸联邦共和国")
		returnList.Add("Nagorno-Karabakh 纳戈尔诺-卡拉巴赫共和国")
		returnList.Add("Namibia 纳米比亚共和国")
		returnList.Add("Nauru 瑙鲁共和国")
		returnList.Add("Nepal 尼泊尔联邦民主共和国")
		returnList.Add("Netherlands 荷兰王国")
		returnList.Add("Netherlands Antilles 荷属安的利兹")
		returnList.Add("New Caledonia 新喀里多尼亚")
		returnList.Add("New Zealand 新西兰")
		returnList.Add("Nicaragua 尼加拉瓜共和国")
		returnList.Add("Niger 尼日尔共和国")
		returnList.Add("Nigeria 尼日利亚联邦共和国")
		returnList.Add("Niue 纽埃")
		returnList.Add("Norfolk Island 诺福克岛")
		returnList.Add("Northern Cyprus 北塞浦路斯土耳其共和国")
		returnList.Add("Northern Mariana Islands 北马里亚纳群岛邦")
		returnList.Add("Norway 挪威王国")
		returnList.Add("Oman 阿曼苏丹国")
		returnList.Add("Pakistan 巴基斯坦伊斯兰共和国")
		returnList.Add("Palau 帕劳共和国")
		returnList.Add("Palestine 巴勒斯坦国")
		returnList.Add("Panama 巴拿马共和国")
		returnList.Add("Papua New Guinea 巴布亚新几内亚独立国")
		returnList.Add("Paraguay 巴拉圭共和国")
		returnList.Add("People's Republic of Korea 朝鲜民主主义人民共和国")
		returnList.Add("Peru 秘鲁共和国")
		returnList.Add("Philippines 菲律宾共和国")
		returnList.Add("Pitcairn Islands 皮特开恩群岛")
		returnList.Add("Poland 波兰共和国")
		returnList.Add("Portugal 葡萄牙共和国")
		returnList.Add("Pridnestrovie 德涅斯特河沿岸摩尔达维亚共和国")
		returnList.Add("Puerto Rico 波多黎各自由邦")
		returnList.Add("Puntland 邦特兰国")
		returnList.Add("Qatar 卡塔尔国")
		returnList.Add("Réunion 留尼汪")
		returnList.Add("Romania 罗马尼亚")
		returnList.Add("Russia 俄罗斯联邦")
		returnList.Add("Rwanda 卢旺达共和国")
		returnList.Add("Saint Helena 圣赫勒拿")
		returnList.Add("Saint Christopher and Nevis 圣基茨和尼维斯联邦")
		returnList.Add("Saint Lucia 圣卢西亚")
		returnList.Add("Saint Pierre and Miquelon 圣皮埃尔和密克隆群岛")
		returnList.Add("Saint Vincent and the Grenadines 圣文森特和格林纳丁斯")
		returnList.Add("Samoa 萨摩亚独立国")
		returnList.Add("San Marino 圣马力诺共和国")
		returnList.Add("São Tomé and Príncipe 圣多美和普林西比民主共和国")
		returnList.Add("Saudi Arabia 沙特阿拉伯王国")
		returnList.Add("Senegal 塞内加尔共和国")
		returnList.Add("Serbia 塞尔维亚共和国")
		returnList.Add("Seychelles 塞舌尔共和国")
		returnList.Add("Sierra Leone 塞拉利昂共和国")
		returnList.Add("Singapore 新加坡共和国")
		returnList.Add("Slovakia 斯洛伐克共和国")
		returnList.Add("Slovenia 斯洛文尼亚共和国")
		returnList.Add("Solomon Islands 所罗门群岛")
		returnList.Add("Somali 索马里联邦共和国")
		returnList.Add("Somaliland 索马里兰共和国")
		returnList.Add("South Africa 南非共和国")
		returnList.Add("South Ossetia 南奥塞梯共和国")
		returnList.Add("South Sudan 南苏丹共和国")
		returnList.Add("Southwestern Somalia 索马里西南国")
		returnList.Add("Spain 西班牙王国")
		returnList.Add("Sri Lanka 斯里兰卡民主社会主义共和国")
		returnList.Add("Sudan 苏丹共和国")
		returnList.Add("Suriname 苏里南共和国")
		returnList.Add("Svalbard 斯瓦尔巴群岛")
		returnList.Add("Swaziland 斯威士兰王国")
		returnList.Add("Sweden 瑞典王国")
		returnList.Add("Switzerland 瑞士联邦")
		returnList.Add("Syria 阿拉伯叙利亚共和国")
		returnList.Add("Taiwan 中华民国")
		returnList.Add("Tajikistan 塔吉克斯坦共和国")
		returnList.Add("Tanzania 坦桑尼亚联合共和国")
		returnList.Add("Thailand 泰王国")
		returnList.Add("Timor-Leste 东帝汶民主共和国")
		returnList.Add("Togo 多哥共和国")
		returnList.Add("Tokelau 托克劳")
		returnList.Add("Tonga 汤加王国")
		returnList.Add("Trinidad and Tobago 特立尼达和多巴哥共和国")
		returnList.Add("Tunisia 突尼斯共和国")
		returnList.Add("Turkey 土耳其共和国")
		returnList.Add("Turkmenistan 土库曼斯坦")
		returnList.Add("Turks and Caicos Islands 特克斯与凯科斯群岛")
		returnList.Add("Tuvalu 图瓦卢")
		returnList.Add("Uganda 乌干达共和国")
		returnList.Add("Ukraine 乌克兰")
		returnList.Add("United Arab Emirates 阿拉伯联合酋长国")
		returnList.Add("United Kingdom 大不列颠及北爱尔兰联合王国")
		returnList.Add("United States 美利坚合众国")
		returnList.Add("Uruguay 乌拉圭东岸共和国")
		returnList.Add("Uzbekistan 乌兹别克斯坦共和国")
		returnList.Add("Vanuatu 瓦努阿图共和国")
		returnList.Add("The Holy See（Vatican City） 梵蒂冈城国")
		returnList.Add("Venezuela 委内瑞拉玻利瓦尔共和国")
		returnList.Add("Vietnam 越南社会主义共和国")
		returnList.Add("Virgin Islands, British 英属维京群岛")
		returnList.Add("Virgin Islands, United States 美属维京群岛")
		returnList.Add("Wallis and Futuna 瓦利斯和富图纳群岛")
		returnList.Add("Western Sahara 阿拉伯撒哈拉民主共和国")
		returnList.Add("Yemen 也门共和国")
		returnList.Add("Zambia 赞比亚共和国")
		returnList.Add("Zimbabwe 津巴布韦共和国")

		Return returnList
	End Function

	Private Sub chkFilterItems_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkFilterItems.CheckedChanged
		AdvancedListBox1.FilterItems = chkFilterItems.Checked
		UpdateCheckBoxes()
	End Sub

	Private Sub chkAutoSelectBestMatch_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkAutoSelectBestMatch.CheckedChanged
		AdvancedListBox1.AutoSelectBestMatch = chkAutoSelectBestMatch.Checked
		UpdateCheckBoxes()
	End Sub

	Private Sub chkOrderByBestMatch_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkOrderByBestMatch.CheckedChanged
		AdvancedListBox1.OrderByBestMatch = chkOrderByBestMatch.Checked
		UpdateCheckBoxes()
	End Sub

	Private Sub chkAutoFocusBestMatch_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkAutoFocusBestMatch.CheckedChanged
		AdvancedListBox1.AutoFocusBestMatch = chkAutoFocusBestMatch.Checked
		UpdateCheckBoxes()
	End Sub

	Private Sub UpdateCheckBoxes()
		chkFilterItems.Checked = AdvancedListBox1.FilterItems
		chkAutoSelectBestMatch.Checked = AdvancedListBox1.AutoSelectBestMatch
		chkOrderByBestMatch.Checked = AdvancedListBox1.OrderByBestMatch
		chkAutoFocusBestMatch.Checked = AdvancedListBox1.AutoFocusBestMatch
	End Sub

	Private Sub chkMultiSelect_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkMultiSelect.CheckedChanged
		If chkMultiSelect.Checked Then
			AdvancedListBox1.SelectionMode = SelectionMode.MultiExtended
		Else
			AdvancedListBox1.SelectionMode = SelectionMode.One
		End If
	End Sub

	Private Sub chkMultiColumn_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkMultiColumn.CheckedChanged
		AdvancedListBox1.MultiColumn = chkMultiColumn.Checked
	End Sub

	Private Sub chkAutoSizeColumn_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkAutoSizeColumn.CheckedChanged
		AdvancedListBox1.AutosizeColumnWidth = chkAutoSizeColumn.Checked
	End Sub

	Private Sub rdoItemList_CheckedChanged(sender As Object, e As System.EventArgs) Handles rdoItemList.CheckedChanged
		If rdoItemList.Checked Then
			AdvancedListBox1.BeginUpdate()
			AdvancedListBox1.DataSource = Nothing
			AdvancedListBox1.Items.Clear()
			For Each item As String In Countries()
				AdvancedListBox1.Items.Add(item)
			Next
			AdvancedListBox1.EndUpdate()
		Else
			AdvancedListBox1.DataSource = Countries()
		End If
	End Sub
End Class
